Ngarkimi i skedareve nepermjet formave

Nje nder inputet kryesore te HTML-se eshte inputi i tipit file me ane te te cilit mund te ngarkojme file te ndryshme ne server si imazhe, dokumenta etj. Supozojme qe nje vizitor duhet te vendose te dhenat e meposhtme per tu regjistruar ne nje portal:

  • emer
  • email
  • foto

Duhet te ndertojme formen me tre inputet e nevojshme. Ne menyre qe forma te pranoje ngarkimin e fileve (ne kete rast imazh), duhet ti shtojme nje atribut ekstra enctype me vleren multipart/form-data.


<form action="" method="POST" enctype="multipart/form-data">

  <input type="text" name="emri"/>

  <input type="email" name="email"/>

  <!-- Input i tipit 'file' -->
  <input type="file" name="foto"/>

  <input type="submit" value="Regjistrohu" name="regjistrohu"/>
</form>

Vizitori do te kete mundesine te shkruaje emrin, emailin, dhe te zgjedhe nje foto nga kompjuteri i tije nepermjet nje File Browser qe do ti hapet ne forme dritareje. Pasi perdoruesi zgjedh imazhin ne sistemin e tij te file-ve ai klikon OK. Me pas ai klikon ne butonin Regjistrohu ku behet edhe submit forma. Ne kete moment ne server do te dergohet nje kerkese POST me te dhenat e futura nga perdoruesi.

Ne skriptin tone, pervec faktit qe mund ti aksesojme te dhenat e thjeshta me ane te variablit $_POST, te dhenat komplekse sic jane file-t e ngarkuar mund ti aksesojme nepermjet variablit super global $_FILES. Ajo cfare ndodh ne te vertete me skedarin e ngarkuar eshte qe skedarit si fillim i merren informacionet e nevojshme si madhesia, prapashtesa, emri origjinal dhe nje emer i perkohshem ku skedari eshte ruajtur perkohesisht ne server. Keto informacione ruhet ne variablin super global $_FILES.

Menyra sesi i trajtojme dhe i validojme ngarkimet e file-ve nepermjet formave HTML tregohet me poshte:

<?php

if (isset($_POST['regjistrohu'])) {

    $emri = $_POST['emri'];
    $email = $_POST['email'];

    //Validojme ngarkimin e imazhit

    if (isset($_FILES["foto"])) { // Kontrollojme nqs. eshte ngarkuar imazh

        $error = FALSE;

        if ($_FILES["file"]["error"] > 0) {

            echo "<p> Gabim gjate hapjes se skedarit! </p>";
            $error = TRUE;

        }

        $prapashtesat_e_lejuara = array("jpg", "png"); // Prapashtesat e lejuara

        $temp = explode(".", $_FILES["foto"]["name"]);

        $prapashtesa = end($temp); // Prapashtesa e skedarit te ngarkuar

        if (!in_array($prapashtesa, $prapashtesat_e_lejuara)) {

            echo "<p> Ju duhet te ngarkoni nje imazh ne formatin jpg ose png! </p>";
            $error = TRUE;

        }

        // 3 Mb = 3 * 1024 * 1024 = 3145728 byte
        if ($_FILES["file"]["size"] > 3145728) {

            echo "<p> Madhesia e imazhit duhet te jete maksimumi 3 Mb! </p>";
            $error = TRUE;

        }

        //Nqs. nuk ka error printojme mesazhin e ngarkimit te suksesshem
        if (!$error) {
            echo "<p> Fotoja u ngarkua me sukses! </p>";
        }

    } else {

        echo "<p> Ju nuk keni ngarkuar asnje imazh! </p>";

    }
}

?>

<form action="" method="POST" enctype="multipart/form-data">

    <input type="text" name="emri"/>

    <input type="email" name="email"/>

    <!-- Input i tipit 'file' -->
    <input type="file" name="foto"/>

    <input type="submit" value="Regjistrohu" name="regjistrohu"/>
</form>

results matching ""

    No results matching ""